﻿using JuCheap.Core.Infrastructure;
using JuCheap.Core.Model;
using System.Threading.Tasks;

namespace JuCheap.Core.IService.AppService
{
    /// <summary>
    /// 公司扩展服务
    /// </summary>
    public interface ICompanyService
    {
        /// <summary>
        /// 创建公司，并初始化公司的管理员
        /// </summary>
        /// <param name="companyCreateRequest"></param>
        /// <returns></returns>
        Task<string> CreateAsync(CompanyCreateRequestDto companyCreateRequest);

        /// <summary>
        /// 更新公司信息
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        Task<string> UpdateAsync(CompanyEditRequestDto req);

        /// <summary>
        /// 公司分页扩展方法
        /// </summary>
        /// <param name="filter">基础分页参数</param>
        /// <returns></returns>
        Task<PagedResult<SysCompanyDto>> QueryPagesAsync(SysCompanyFilter filter);
    }
}
